This document will describe and analyze the variables we are using to create several different constructs for key independent and dependent variables. Each section will describe a specific construct and what variables we initially considered as candidates for loading into the construct. It will then perform an exploratory factor analysis to see how well the variables actually load into a single factor.
Four of the factors (support for violent practices, anti-secularism, and support for women’s rights) represent potential dependent variables for the analysis, while four other constructs (religiosity, theological conservatism, social conservatism, and attitudes toward the west) represent potential independent variables.
In each case, we use a correlogram to graphically examine correlations between variables and a cronbach’s \(\alpha\) to test the adequacy of a single common factor across all items. We then run a full exploratory factor analysis where we look at several diagnostics (VSS, empirical Bayes, etc.) for the optimal number of factors and then examine factor loadings across models with different numbers of factor loadings. We also include a final section for the independent and dependent variables where we load all of our candidate variables across all constructs into a single factor analysis to see if the results separate in the expected manner.
We use EFA with oblimin (oblique) rotation rather than PCA for the analysis. There is considerable debate about which technique is more appropriate, a lot of which hinges on whether the goal is to truly identify a latent construct or just provide a simple data reduction of collinear terms - which strike me as theoretical not always separable. In most cases, the techniques produce similar resuls. We have also repeated the anlalysis here with PCA and reached the same conclusion. We note below the only case where PCA produced a notable difference.
This is a classic measure in studies of religion in the Western context, but is often used as a multi-dimensional construct measuring a variety of different concepts. We are using it as a measure of the intensity of religious belief and practice in a person’s life, separate from specific kinds of practices, rituals, and beliefs. We are considering the four variables below.
| Name | Question | Missing Countries |
|---|---|---|
| attend (Q34) | Frequency of mosque attendance | |
| relig_important (Q36) | How important is religion in life? | |
| prayer (Q61) | How often do you pray? | |
| read_koran (Q65) | How often read/listen to Koran? |
|
| follow_prophet (Q59) | How much does the way you live reflect saying and actions of Mohammed |
|
The Koran and follow the prophet variables will likely have to be removed for the full analysis because they were not measured in the African sample. I am also a little concerned about the attendance variable. It is a common component of religiosity measures in the west but mosque attendance is not as regularized in Islam as church attendance is in Christianity. Furthermore, mosque attendance prescriptions are different for men and women.
religiosity <- cbind(attend=as.numeric(pew$attend),
relig_important=as.numeric(pew$relig_important),
prayer=as.numeric(pew$prayer),
read_koran=as.numeric(pew$read_koran),
follow_prophet=as.numeric(pew$follow_prophet))
corrgram(religiosity, upper.panel="panel.cor", order="PCA")
alpha(cor(religiosity, use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(religiosity, use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.75 0.75 0.72 0.37 3 0.37
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## attend 0.73 0.73 0.67 0.40 2.7 0.0077 0.40
## relig_important 0.69 0.69 0.64 0.36 2.3 0.0128 0.37
## prayer 0.67 0.67 0.61 0.33 2.0 0.0082 0.34
## read_koran 0.68 0.68 0.63 0.35 2.1 0.0091 0.35
## follow_prophet 0.75 0.75 0.70 0.43 3.0 0.0033 0.44
##
## Item statistics
## r r.cor r.drop
## attend 0.67 0.53 0.46
## relig_important 0.73 0.63 0.55
## prayer 0.78 0.71 0.62
## read_koran 0.75 0.67 0.58
## follow_prophet 0.61 0.44 0.38
nfactors(cor(religiosity, use="pairwise.complete.obs"))
## n.obs was not specified and was arbitrarily set to 1000. This only affects the chi square values.
##
## Number of factors
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
## n.obs = n.obs, plot = FALSE, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of 0.75 with 1 factors
## VSS complexity 2 achieves a maximimum of 0.84 with 2 factors
## The Velicer MAP achieves a minimum of 0.06 with 1 factors
## Empirical BIC achieves a minimum of -22.31 with 1 factors
## Sample Size adjusted BIC achieves a minimum of -4.93 with 1 factors
##
## Statistics by number of factors
## vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
## 1 0.75 0.00 0.064 5 1.4e+01 0.017 2.0 0.75 0.042 -20.8 -4.9 1.0
## 2 0.74 0.84 0.207 1 1.2e+00 0.280 1.3 0.84 0.013 -5.7 -2.6 1.1
## 3 0.45 0.72 0.399 -2 2.0e-09 NA 1.6 0.80 NA NA NA 1.9
## 4 0.46 0.75 1.000 -4 4.4e-12 NA 1.5 0.81 NA NA NA 2.1
## 5 0.46 0.75 NA -5 4.4e-12 NA 1.5 0.81 NA NA NA 2.1
## eChisq SRMR eCRMS eBIC
## 1 1.2e+01 2.5e-02 0.035 -22.3
## 2 7.2e-01 6.0e-03 0.019 -6.2
## 3 1.3e-09 2.6e-07 NA NA
## 4 3.2e-12 1.3e-08 NA NA
## 5 3.2e-12 1.3e-08 NA NA
loadings(fa(cor(religiosity, use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## attend 0.544
## relig_important 0.646
## prayer 0.747
## read_koran 0.696
## follow_prophet 0.442
##
## MR1
## SS loadings 1.951
## Proportion Var 0.390
fa.diagram(fa(cor(religiosity, use="pairwise.complete.obs"),1,rotate=rotation_choice))
loadings(fa(cor(religiosity, use="pairwise.complete.obs"),2,rotate=rotation_choice))
## Loading required namespace: GPArotation
##
## Loadings:
## MR1 MR2
## attend 0.602
## relig_important 0.604
## prayer 0.725
## read_koran 0.709
## follow_prophet 0.997
##
## MR1 MR2
## SS loadings 1.755 1.004
## Proportion Var 0.351 0.201
## Cumulative Var 0.351 0.552
fa.diagram(fa(cor(religiosity, use="pairwise.complete.obs"),2,rotate=rotation_choice))
#follow the prophet stands out as a bit different, what if we removed it?
loadings(fa(cor(religiosity[,-5], use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## attend 0.565
## relig_important 0.629
## prayer 0.737
## read_koran 0.704
##
## MR1
## SS loadings 1.754
## Proportion Var 0.438
#given that read_koran is not available for SS African, how does it look without it
alpha(cor(religiosity[,c(-4,-5)], use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(religiosity[, c(-4, -5)], use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.68 0.68 0.59 0.41 2.1 0.43
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## attend 0.63 0.63 0.46 0.46 1.7 NA 0.46
## relig_important 0.60 0.60 0.43 0.43 1.5 NA 0.43
## prayer 0.52 0.52 0.35 0.35 1.1 NA 0.35
##
## Item statistics
## r r.cor r.drop
## attend 0.76 0.55 0.45
## relig_important 0.77 0.58 0.48
## prayer 0.81 0.66 0.54
loadings(fa(cor(religiosity[,c(-4,-5)], use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## attend 0.569
## relig_important 0.612
## prayer 0.751
##
## MR1
## SS loadings 1.262
## Proportion Var 0.421
#check on gender issue with attendance
100*round(prop.table(table(pew$attend, pew$gender),2),3)
##
## Male Female
## Never 8.3 36.7
## Seldom 7.1 12.2
## A few times a year 6.8 10.2
## Once or twice a month 5.3 6.1
## Once a week 26.1 12.1
## More than once a week 46.3 22.7
As the analysis above shows, the religiosity measures did hang together pretty well as a single factor. Cronbach’s \(\alpha\) was reasonably high and the factor loadings from the EFA were also strong, although somewhat weaker for the follow_prophet variable. Additionally, when split into two factors, the follow_prophet variable seems to have some distinctiveness. There is also a potential issue with attendance, because the expectation about mosque attendance is different for men and women. This expectation shows up in the data where women attend mosque far less regularly. This may make attendance slightly problematic for measuring religiosity, because women will incorrectly look like they have less religiosity.
Based on these results and data availability, I recommend that we construct a scale using attend, relig_important, and prayer in order to maximize sample size. These variables are available across all countries and hang together well as a single factor.
Theological conservatism is a common characteristic in studies of religion in the West. Olson and Carroll have created a composite variable from the GSS data in the US. Theological conservatism measures the importance of literalism and orthodoxy in religious belief. These are the candidate variables that we are considering as part of theological conservatism.
| Name | Question | Missing Countries |
|---|---|---|
| believe_moral (Q16) | Necessary to believe in god to be moral |
|
| islam_truth (Q55) | Islam is the one true faith |
|
| islam_oneway (Q57) | One way to interpret religious teaching |
|
| follow_prophet (Q59) | How much does the way you live reflect saying and actions of Mohammed |
|
| sharia_god (Q66) | Sharia is the revealed word of God (SS African sample asks similar question about Koran) |
|
| sharia_oneway (Q67) | There is only one true understanding of Sharia (SS African sample asks similar question about Koran) |
|
Note that follow_prophet shows up as a candidate variable here as well as for religiosity. Also note that we are missing two of these variables for SS Africa and the sharia_god question also had a different question wording in the SS Africa sample.
theocons <- cbind(believe_moral=as.numeric(pew$believe_moral),
islam_truth=as.numeric(pew$islam_truth),
islam_oneway=as.numeric(pew$islam_oneway),
follow_prophet=as.numeric(pew$follow_prophet),
sharia_god=as.numeric(pew$sharia_god),
sharia_oneway=as.numeric(pew$sharia_oneway))
corrgram(theocons, upper.panel="panel.cor", order="PCA")
alpha(cor(theocons, use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(theocons, use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.47 0.47 0.45 0.13 0.9 0.12
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## believe_moral 0.46 0.46 0.42 0.15 0.85 0.0068 0.139
## islam_truth 0.38 0.38 0.35 0.11 0.62 0.0052 0.092
## islam_oneway 0.38 0.38 0.33 0.11 0.60 0.0027 0.098
## follow_prophet 0.45 0.45 0.42 0.14 0.83 0.0072 0.139
## sharia_god 0.45 0.45 0.41 0.14 0.80 0.0080 0.130
## sharia_oneway 0.45 0.45 0.40 0.14 0.81 0.0045 0.152
##
## Item statistics
## r r.cor r.drop
## believe_moral 0.48 0.26 0.18
## islam_truth 0.59 0.47 0.32
## islam_oneway 0.60 0.49 0.33
## follow_prophet 0.49 0.28 0.19
## sharia_god 0.50 0.30 0.21
## sharia_oneway 0.50 0.31 0.20
nfactors(cor(theocons, use="pairwise.complete.obs"))
## n.obs was not specified and was arbitrarily set to 1000. This only affects the chi square values.
##
## Number of factors
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
## n.obs = n.obs, plot = FALSE, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of 0.45 with 3 factors
## VSS complexity 2 achieves a maximimum of 0.54 with 3 factors
## The Velicer MAP achieves a minimum of 0.05 with 1 factors
## Empirical BIC achieves a minimum of -15.35 with 2 factors
## Sample Size adjusted BIC achieves a minimum of -5.19 with 2 factors
##
## Statistics by number of factors
## vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
## 1 0.33 0.00 0.046 9 5.6e+01 9.7e-09 4.5 0.33 0.072 -6.6 21.9 1.0
## 2 0.36 0.43 0.105 4 9.7e+00 4.5e-02 3.8 0.43 0.038 -17.9 -5.2 1.3
## 3 0.45 0.54 0.232 0 1.8e-06 NA 3.0 0.55 NA NA NA 1.4
## 4 0.45 0.53 0.439 -3 1.8e-12 NA 2.8 0.59 NA NA NA 1.7
## 5 0.34 0.47 1.000 -5 0.0e+00 NA 3.2 0.52 NA NA NA 1.9
## 6 0.34 0.47 NA -6 0.0e+00 NA 3.2 0.52 NA NA NA 1.9
## eChisq SRMR eCRMS eBIC
## 1 8.1e+01 5.2e-02 0.067 18
## 2 1.2e+01 2.0e-02 0.039 -15
## 3 2.3e-06 8.7e-06 NA NA
## 4 2.2e-12 8.5e-09 NA NA
## 5 1.1e-14 6.1e-10 NA NA
## 6 1.1e-14 6.1e-10 NA NA
loadings(fa(cor(theocons, use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## believe_moral 0.238
## islam_truth 0.492
## islam_oneway 0.564
## follow_prophet 0.261
## sharia_god 0.305
## sharia_oneway 0.325
##
## MR1
## SS loadings 0.884
## Proportion Var 0.147
fa.diagram(fa(cor(theocons, use="pairwise.complete.obs"),1,rotate=rotation_choice))
loadings(fa(cor(theocons, use="pairwise.complete.obs"),2,rotate=rotation_choice))
##
## Loadings:
## MR1 MR2
## believe_moral -0.104 0.433
## islam_truth 0.147 0.434
## islam_oneway 0.802
## follow_prophet 0.366
## sharia_god 0.151 0.176
## sharia_oneway 0.343
##
## MR1 MR2
## SS loadings 0.818 0.540
## Proportion Var 0.136 0.090
## Cumulative Var 0.136 0.226
fa.diagram(fa(cor(theocons, use="pairwise.complete.obs"),2,rotate=rotation_choice))
loadings(fa(cor(theocons, use="pairwise.complete.obs"),3,rotate=rotation_choice))
##
## Loadings:
## MR1 MR2 MR3
## believe_moral 0.542
## islam_truth 0.532 0.146
## islam_oneway 0.109 0.557 -0.107
## follow_prophet 0.187 0.209
## sharia_god 0.260
## sharia_oneway 0.995
##
## MR1 MR2 MR3
## SS loadings 1.016 0.696 0.371
## Proportion Var 0.169 0.116 0.062
## Cumulative Var 0.169 0.285 0.347
fa.diagram(fa(cor(theocons, use="pairwise.complete.obs"),3,rotate=rotation_choice))
#what if I just limit it to the three with full data and fairly high loadings together
alpha(cor(theocons[,1:3], use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(theocons[, 1:3], use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.38 0.38 0.31 0.17 0.62 0.18
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## believe_moral 0.44 0.44 0.281 0.281 0.78 NA 0.281
## islam_truth 0.10 0.10 0.055 0.055 0.12 NA 0.055
## islam_oneway 0.30 0.30 0.177 0.177 0.43 NA 0.177
##
## Item statistics
## r r.cor r.drop
## believe_moral 0.61 0.24 0.15
## islam_truth 0.73 0.51 0.32
## islam_oneway 0.67 0.37 0.22
loadings(fa(cor(theocons[,1:3], use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## believe_moral 0.187
## islam_truth 0.950
## islam_oneway 0.296
##
## MR1
## SS loadings 1.024
## Proportion Var 0.341
The variables for theological conservatism did not hold together well. Cronback’s \(\alpha\) is low and a lot of the factor loadings are low as well. When split into two or three factors, nothing really holds together in a meaningful way.
Based on these results, I would recommend that we not create a scale here, but that we consider including islam_truth, islam_oneway, and believe_moral as separate independent variables.
The pew data includes two questions that directly ask about the respondent’s attitude towards “western movies, music, and television.” There is also a third variable on whether there is a conflict between religion and modern society. I don’t think this will correlate that well with the other two,but I want to check that here.
| Name | Question | Missing Countries |
|---|---|---|
| western_culture (Q17) | Like/Dislike Western movies, music and television? |
|
| western_immoral (Q26) | Western movies, music, and television have hurt morality in our country. |
|
| conflict_modern (Q75) | Natural conflict between religion and modern society. |
|
western <- cbind(western_culture=as.numeric(pew$western_culture=="I dislike western music, movies and television"),
western_immoral=as.numeric(pew$western_immoral),
conflict_modern=as.numeric(pew$conflict_modern))
corrgram(western, upper.panel="panel.cor", order="PCA")
alpha(cor(western, use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(western, use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.34 0.34 0.29 0.14 0.51 0.054
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## western_culture 0.103 0.103 0.054 0.054 0.12 NA 0.054
## western_immoral 0.074 0.074 0.039 0.039 0.08 NA 0.039
## conflict_modern 0.510 0.510 0.342 0.342 1.04 NA 0.342
##
## Item statistics
## r r.cor r.drop
## western_culture 0.70 0.473 0.262
## western_immoral 0.71 0.489 0.275
## conflict_modern 0.56 0.092 0.057
loadings(fa(cor(western, use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## western_culture 0.492
## western_immoral 0.694
## conflict_modern
##
## MR1
## SS loadings 0.731
## Proportion Var 0.244
loadings(fa(cor(western[,-3], use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## western_culture 0.585
## western_immoral 0.585
##
## MR1
## SS loadings 0.684
## Proportion Var 0.342
The two westernization questions are reasonably correlated with each other but not with conflict_modern. I would recommend that we combine them into a single scale and keep conflict_modern as a separate variable.
If I combine all four sets of independent variables together after cutting out variables that are missing for SS Africa, how well do they separate into the underlying constructs that I am exploring?
## n.obs was not specified and was arbitrarily set to 1000. This only affects the chi square values.
##
## Number of factors
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
## n.obs = n.obs, plot = FALSE, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of Although the vss.max shows 8 factors, it is probably more reasonable to think about 2 factors
## VSS complexity 2 achieves a maximimum of 0.65 with 10 factors
## The Velicer MAP achieves a minimum of 0.01 with 2 factors
## Empirical BIC achieves a minimum of -406.63 with 4 factors
## Sample Size adjusted BIC achieves a minimum of -179.65 with 5 factors
##
## Statistics by number of factors
## vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
## 1 0.40 0.00 0.015 135 1.1e+03 7.8e-149 15.6 0.40 0.084 156 585 1.0
## 2 0.49 0.54 0.011 118 4.0e+02 7.1e-33 11.9 0.54 0.049 -412 -37 1.2
## 3 0.47 0.57 0.015 102 2.7e+02 1.5e-16 10.9 0.58 0.040 -439 -115 1.4
## 4 0.51 0.59 0.020 87 1.7e+02 4.9e-07 9.8 0.63 0.030 -434 -157 1.6
## 5 0.50 0.60 0.026 73 9.3e+01 5.9e-02 9.1 0.65 0.016 -412 -180 1.6
## 6 0.56 0.62 0.035 60 4.9e+01 8.4e-01 8.4 0.68 0.000 -365 -175 1.5
## 7 0.55 0.62 0.048 48 2.7e+01 9.9e-01 8.0 0.69 0.000 -305 -152 1.5
## 8 0.58 0.64 0.061 37 1.2e+01 1.0e+00 7.3 0.72 0.000 -243 -126 1.5
## 9 0.52 0.64 0.074 27 5.5e+00 1.0e+00 7.1 0.73 0.000 -181 -95 1.8
## 10 0.56 0.65 0.089 18 2.5e+00 1.0e+00 6.6 0.75 0.000 -122 -65 1.6
## 11 0.53 0.65 0.118 10 5.0e-01 1.0e+00 6.6 0.75 0.000 -69 -37 1.6
## 12 0.50 0.62 0.149 3 3.8e-02 1.0e+00 6.9 0.74 0.000 -21 -11 1.8
## 13 0.49 0.62 0.190 -3 2.3e-03 NA 7.0 0.73 NA NA NA 1.8
## 14 0.49 0.62 0.275 -8 4.2e-05 NA 6.9 0.73 NA NA NA 1.8
## 15 0.49 0.61 0.325 -12 1.6e-07 NA 6.9 0.73 NA NA NA 1.8
## 16 0.47 0.61 0.496 -15 1.4e-07 NA 7.0 0.73 NA NA NA 1.8
## 17 0.47 0.61 1.000 -17 3.5e-12 NA 7.0 0.73 NA NA NA 1.8
## 18 0.47 0.61 NA -18 3.5e-12 NA 7.0 0.73 NA NA NA 1.8
## eChisq SRMR eCRMS eBIC
## 1 2.1e+03 8.4e-02 0.0889 1201
## 2 5.7e+02 4.3e-02 0.0492 -245
## 3 3.6e+02 3.4e-02 0.0419 -347
## 4 1.9e+02 2.5e-02 0.0334 -407
## 5 1.0e+02 1.8e-02 0.0266 -401
## 6 4.5e+01 1.2e-02 0.0193 -370
## 7 2.3e+01 8.7e-03 0.0155 -308
## 8 1.0e+01 5.8e-03 0.0119 -245
## 9 5.0e+00 4.1e-03 0.0096 -181
## 10 2.1e+00 2.6e-03 0.0077 -122
## 11 4.7e-01 1.2e-03 0.0048 -69
## 12 3.0e-02 3.1e-04 0.0022 -21
## 13 1.7e-03 7.4e-05 NA NA
## 14 3.5e-05 1.1e-05 NA NA
## 15 1.6e-07 7.1e-07 NA NA
## 16 9.4e-08 5.6e-07 NA NA
## 17 3.9e-12 3.6e-09 NA NA
## 18 3.9e-12 3.6e-09 NA NA
##
## Loadings:
## MR1 MR2 MR3 MR4
## attend 0.615 -0.101
## relig_important 0.598 0.103
## prayer 0.681
## believe_moral 0.198 0.178
## islam_truth 0.174 0.518
## islam_oneway 0.355
## moral_divorce 0.112
## moral_fertility 0.118
## moral_alcohol 0.455 0.138 0.112
## moral_euthansia 0.453 0.122 -0.144
## moral_suicide 0.605 -0.170
## moral_abortion 0.504 0.189 -0.157
## moral_prostitution 0.670 -0.116
## moral_premar_sex 0.558 0.193
## moral_gay 0.647
## western_culture 0.692
## western_immoral 0.484
## conflict_modern -0.102
##
## MR1 MR2 MR3 MR4
## SS loadings 2.235 1.394 0.753 0.600
## Proportion Var 0.124 0.077 0.042 0.033
## Cumulative Var 0.124 0.202 0.243 0.277
When I split them into four factors, they more or less split in the expecterd direction with all the same weak variables as we found earlier (conflict_modern, morality_fertility, morality_divorce) and with poorer results for the theological conservartism variable. If we remove the weak variables and theological conservatism variables, we get very clean results with a three-factor solution (shown below).
The results show the strong separation of the religiosity and morality measures, with the exception of moral_divorce and moral_fertility. It also shows the relative weakness of the theological conservativism variables and the uniqueness of the conflict with modernity. Based on this we will do the following:
Here we want to capture whether respondents favor harsh and violent responses to violations of the social fabric/religious norms. So stoning, cutting off hands, honor killings, death for apostasy and the like. There is also a question about whether it is justified to kill civilians in defense of Islam. That variable seems like the closest to a “support for terrorism” variable that we have.
| Name | Question | Missing Countries |
|---|---|---|
| honorkill_man (Q53) | Justified for family members to kill man who dishonors family by premarital sex or adultery. |
|
| honorkill_woman (Q53) | Justified for family members to kill woman who dishonors family by premarital sex or adultery. |
|
| death_apostasy (Q92b) | Favor the death penalty for people who leave the Muslim religion |
|
| severe_corporal (Q92c) | Favor punishments like whipping or cutting off hands for crimes like theft and robbery. |
|
| stone_adultery (Q92d) | Favor stoning people who commit adultery. |
|
| civilian_targets (Q89) | Violence against civilian targets in defense of Islam justified. I don’t think this really goes here but may want to consider it separately. |
|
violent <- cbind(honorkill_man=as.numeric(pew$honorkill_man),
honorkill_woman=as.numeric(pew$honorkill_woman),
death_apostasy=as.numeric(pew$death_apostasy),
severe_corporal=as.numeric(pew$severe_corporal),
stone_adultery=as.numeric(pew$stone_adultery),
civilian_target=as.numeric(pew$civilian_target))
corrgram(violent, upper.panel="panel.cor", order="PCA")
alpha(cor(violent, use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(violent, use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.78 0.78 0.81 0.37 3.5 0.29
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## honorkill_man 0.74 0.74 0.74 0.36 2.9 0.033 0.30
## honorkill_woman 0.74 0.74 0.74 0.36 2.8 0.034 0.28
## death_apostasy 0.74 0.74 0.78 0.36 2.8 0.039 0.30
## severe_corporal 0.73 0.73 0.75 0.35 2.7 0.028 0.30
## stone_adultery 0.72 0.72 0.74 0.34 2.6 0.027 0.28
## civilian_target 0.79 0.79 0.82 0.43 3.7 0.038 0.30
##
## Item statistics
## r r.cor r.drop
## honorkill_man 0.70 0.65 0.54
## honorkill_woman 0.70 0.66 0.55
## death_apostasy 0.71 0.62 0.55
## severe_corporal 0.72 0.68 0.57
## stone_adultery 0.75 0.72 0.61
## civilian_target 0.55 0.38 0.34
nfactors(cor(violent, use="pairwise.complete.obs"))
## n.obs was not specified and was arbitrarily set to 1000. This only affects the chi square values.
##
## Number of factors
## Call: vss(x = x, n = n, rotate = rotate, diagonal = diagonal, fm = fm,
## n.obs = n.obs, plot = FALSE, title = title, use = use, cor = cor)
## VSS complexity 1 achieves a maximimum of 0.75 with 2 factors
## VSS complexity 2 achieves a maximimum of 0.88 with 2 factors
## The Velicer MAP achieves a minimum of 0.11 with 2 factors
## Empirical BIC achieves a minimum of -20.39 with 2 factors
## Sample Size adjusted BIC achieves a minimum of -2.57 with 2 factors
##
## Statistics by number of factors
## vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex
## 1 0.72 0.00 0.14 9 8.1e+02 1.2e-168 3.1 0.72 0.298 748 776.8 1.0
## 2 0.75 0.88 0.11 4 1.2e+01 1.5e-02 1.3 0.88 0.046 -15 -2.6 1.2
## 3 0.63 0.84 0.23 0 1.3e+00 NA 1.1 0.90 NA NA NA 1.4
## 4 0.72 0.84 0.47 -3 5.3e-07 NA 1.1 0.90 NA NA NA 1.4
## 5 0.72 0.84 1.00 -5 0.0e+00 NA 1.1 0.90 NA NA NA 1.4
## 6 0.72 0.84 NA -6 0.0e+00 NA 1.1 0.90 NA NA NA 1.4
## eChisq SRMR eCRMS eBIC
## 1 6.8e+02 1.5e-01 0.19 617
## 2 7.2e+00 1.6e-02 0.03 -20
## 3 2.4e-01 2.8e-03 NA NA
## 4 1.6e-07 2.3e-06 NA NA
## 5 1.3e-15 2.1e-10 NA NA
## 6 1.3e-15 2.1e-10 NA NA
loadings(fa(cor(violent, use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## honorkill_man 0.571
## honorkill_woman 0.583
## death_apostasy 0.658
## severe_corporal 0.706
## stone_adultery 0.750
## civilian_target 0.375
##
## MR1
## SS loadings 2.300
## Proportion Var 0.383
fa.diagram(fa(cor(violent, use="pairwise.complete.obs"),1,rotate=rotation_choice))
loadings(fa(cor(violent, use="pairwise.complete.obs"),2,rotate=rotation_choice))
##
## Loadings:
## MR1 MR2
## honorkill_man 0.884
## honorkill_woman 0.827
## death_apostasy 0.642
## severe_corporal 0.828
## stone_adultery 0.870
## civilian_target 0.126 0.325
##
## MR1 MR2
## SS loadings 1.870 1.577
## Proportion Var 0.312 0.263
## Cumulative Var 0.312 0.575
fa.diagram(fa(cor(violent, use="pairwise.complete.obs"),2,rotate=rotation_choice))
loadings(fa(cor(violent, use="pairwise.complete.obs"),3,rotate=rotation_choice))
##
## Loadings:
## MR2 MR1 MR3
## honorkill_man 0.907
## honorkill_woman 0.804
## death_apostasy 0.823
## severe_corporal 0.524 0.268
## stone_adultery 1.012
## civilian_target 0.313 0.203
##
## MR2 MR1 MR3
## SS loadings 1.569 1.302 0.793
## Proportion Var 0.262 0.217 0.132
## Cumulative Var 0.262 0.478 0.611
fa.diagram(fa(cor(violent, use="pairwise.complete.obs"),3,rotate=rotation_choice))
fa.diagram(pca(cor(violent, use="pairwise.complete.obs"),3,rotate=rotation_choice))
#remove honor killings and civilian targets
alpha(cor(violent[,c(-1,-2,-6)], use="pairwise.complete.obs"))
##
## Reliability analysis
## Call: alpha(x = cor(violent[, c(-1, -2, -6)], use = "pairwise.complete.obs"))
##
## raw_alpha std.alpha G6(smc) average_r S/N median_r
## 0.83 0.83 0.77 0.61 4.7 0.58
##
## Reliability if an item is dropped:
## raw_alpha std.alpha G6(smc) average_r S/N var.r med.r
## death_apostasy 0.83 0.83 0.71 0.71 5.0 NA 0.71
## severe_corporal 0.73 0.73 0.58 0.58 2.8 NA 0.58
## stone_adultery 0.70 0.70 0.54 0.54 2.4 NA 0.54
##
## Item statistics
## r r.cor r.drop
## death_apostasy 0.82 0.66 0.61
## severe_corporal 0.87 0.79 0.71
## stone_adultery 0.89 0.82 0.74
vss(cor(violent[,c(-1,-2,-6)], use="pairwise.complete.obs"))
## n.obs was not specified and was arbitrarily set to 1000. This only affects the chi square values.
##
## Very Simple Structure
## Call: vss(x = cor(violent[, c(-1, -2, -6)], use = "pairwise.complete.obs"))
## VSS complexity 1 achieves a maximimum of 0.91 with 1 factors
## VSS complexity 2 achieves a maximimum of 0.91 with 2 factors
##
## The Velicer MAP achieves a minimum of NA with 1 factors
## BIC achieves a minimum of NA with factors
## Sample Size adjusted BIC achieves a minimum of NA with factors
##
## Statistics by number of factors
## vss1 vss2 map dof chisq prob sqresid fit RMSEA BIC SABIC complex eChisq
## 1 0.91 0.00 0.26 0 4.9e-09 NA 0.48 0.91 NA NA NA 1.0 4.7e-09
## 2 0.50 0.91 1.00 -2 6.1e-11 NA 0.46 0.91 NA NA NA 1.9 1.9e-11
## 3 0.50 0.91 NA -3 6.1e-11 NA 0.46 0.91 NA NA NA 1.9 1.9e-11
## SRMR eCRMS eBIC
## 1 8.9e-07 NA NA
## 2 5.6e-08 NA NA
## 3 5.6e-08 NA NA
loadings(fa(cor(violent[,c(-1,-2,-6)], use="pairwise.complete.obs"),1,rotate=rotation_choice))
##
## Loadings:
## MR1
## death_apostasy 0.664
## severe_corporal 0.818
## stone_adultery 0.874
##
## MR1
## SS loadings 1.874
## Proportion Var 0.625
The results here suggest that while there are decent correlations between all variables, they seem to separate into two groupings. First, honor killings of men and women are highly correlated and are also reasonably correlated with civilian_target. Then death_apostasy, severe_corporal, and stone_adultery hang together well as a single factor. When split into three factors, death_apostasy seems a little different from the other two, but there is a high correlation between the two common factors. Its also worth nothing that when doing a PCA vs. EFA, it is civilian_target that shows up as different in the three factor solution (one of the only cases where EFA and PCA produces somewhat different results in our analysis).
Honor killing is a little more problematic as a treatment of our dependent variable in my view than death_apostasy, severe_corporal, and stone_adultery because while the other three all have a basis in Islamic scripture, honor killing does not and may be a more locality-specific act. Furthermore, honor killing data is missing for a lot of countries. There are also good theoretical reasons to keep civilian_target separate as a measure of support for more extremist jihadi beliefs.
Based on the results, my recommendation would be to combine death_apostasy, severe_corporal, and stone_adultery into a single scale of “support for violent practices” and treat civilian_target as a separate dependent variable measuring “support for terrorism.”
Social conservatism
Back to top
Social conservatism all relate to Q84. Respondents were asked whether the following behaviors were morally acceptable, morally wrong, or not a moral issue.
This question was not asked at all in Morocco and Uzbekistan.
Many of the responses may indirectly relate to religious beliefs but they do not specifically ask about a connection to religious belief. Thus this gives us a way to separate religiosity and theological conservatism from general social conservatism in the models.
Summary
The morality variables seem to hold together well as a single construct, except for the moral_divorce and moral_fertility items which seem to be tapping something else. There is also a secondary split between the items involving “life and death” (suicide, euthanasia, and abortion) but I don’t think there is a need for the complexity of two separate constructs here as the factor loadings and Cronbach’s \(\alpha\) for a single factor are quite good. I would recommend we these items wihout moral_divorce and moral_fertility to construct a single scale.